import axios from "axios"
// 创建 axios 请求实例
const serviceAxios = axios.create({
    baseURL: process.env.VUE_APP_URL, // 基础请求地址
    timeout: 10000, // 请求超时设置
});


serviceAxios.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    // 什么时候执行：发请求之前执行
    //可以判断用户有没有登录，如果没有登录，就直接return,请求就不会出去；
    if (sessionStorage.getItem("token")) {
        config.headers.token = sessionStorage.getItem("token")
    }
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
serviceAxios.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    //接收到响应之前，在执行then方法之前
    return response;//返回的响应，被then方法接收
}, function (error) {
    // 对响应错误做点什么
    console.log("error", error.response.status)
    switch (error.response.status) {
        case 302: alert('接口重定向了！'); break;
        case 400: alert('参数不正确！'); break;
        case 401: alert('您未登录，或者登录已经超时，请先登录！'); break;
        case 403: alert('您没有权限操作！'); break;
        case 404: alert('请求地址出错'); break; // 在正确域名下
        case 408: alert('请求超时！'); break;
        case 409: alert('系统已存在相同数据！'); break;
        case 500: alert('服务器内部错误！'); break;
        case 501: alert('服务未实现！'); break;
        case 502: alert('网关错误！'); break;
        case 503: alert('服务不可用！'); break;
        case 504: alert('服务暂时无法访问，请稍后再试！'); break;
        case 505: alert('HTTP版本不受支持！'); break;
        default: alert('异常问题，请联系管理员！'); break
    }
    // 对响应错误做点什么
    return Promise.reject(error);
});

export default serviceAxios